#ifndef COMMONPAGE_H
#define COMMONPAGE_H

#include <QWidget>
#include "musiclist.h"
#include "music.h"
#include <QMediaPlaylist>

namespace Ui {
class CommonPage;
}

enum PageType{
    LIKE_PAGE,
    LOCAL_PAGE,
    RECENT_PAGE
};

class CommonPage : public QWidget
{
    Q_OBJECT

public:
    explicit CommonPage(QWidget *parent = nullptr);
    ~CommonPage();
    //设置tittle 和 图片
    void setCommonPageUi(const QString& text,const QString& imagePath);
    //设置commonPage页面类型
    void setCommonPageType(const PageType pagetype);
    //从musicList中添加音乐到CommonPage
    void addMusicToCommonPage(MusicList &musicList);
    //显示音乐列表到显示框里
    void reFresh(MusicList &musicList);
    //奖该页面的音乐添加到playlist中
    void addMusicToPlaylist(QMediaPlaylist& playlist);
    //获取Music对象
    Music* getMusic(int idx);
private slots:
    //播放全部按钮槽函数
    void on_playAllBtn_clicked();
    //歌曲列表双击
    void on_PageMusicList_doubleClicked(const QModelIndex &index);

signals:
    //更新歌曲收藏属性
    void updateLikeMusic();
    //播放全部信号
    void playAllSignal(CommonPage*);
    //歌曲列表双击
    void musicListDoubleClicked(CommonPage*,int);
private:
    Ui::CommonPage *ui;
    PageType pageType;//页面类型
    QVector<Music*> musics;//要显示在页面上的音乐
};

#endif // COMMONPAGE_H
